package priv.mill.arr;

import java.util.Arrays;
import java.util.Scanner;

public class AvgScore {

	public static void main(String[] args) {

		long result=cauculateJieChen(5);
		System.out.println(result);
	}

	private static long cauculateJieChen(int i) {
		if(i>1)
			return cauculateJieChen(i-1)*i;
		else {
			return 1;
		}
	}

	private static void test54() {
		// 		3,6,8,7,5,0
		
					
//		5、在数组中的某个位置插入一个任意数
//
//		题目：已知有一个整型数组，原始长度为6,
		int[] arr=new int[6];
//		现在数组中已经放置了5个无素。
//		100 -- 89
//		要求能够根据用户的需求在数组的某个位置插入用户输入的数字。
	}

	private static void test5() {
		// 求1+2!+3!+...+20!的和
		long sum=0;
		for (int i = 1; i <= 20; i++) {
			sum+=cauJieCheng(i);//求阶乘
		}
		System.out.println(sum);
	}

	private static long cauJieCheng(int num) {
		int i;
		long j;
		for (j = i = 1; i <= num; i++) {
			j *= i;
		}
		return j;
	}

	private static void test4() {
		// 数组作业3：
		int[] arr = new int[41];// 0-40
		int j;
		/*
		 * 取值范围0,1,2 数字总共有5个 arr[0]=1 arr[1]=1 arr[2]=3
		 */

		// 随机生成50个数字（整数），
		for (int i = 0; i < 50; i++) {
			j = (int) (Math.random() * 41) + 10;// 10-50
			arr[j - 10]++;
		}
		// 每个数字的范围是［10，50］
		// 统计每个数字出现的次数以及出现次数最多的数字与它的个数，
		int max = 0;
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] != 0)// 如果某个数字出现次数为0，则不要打印它，
				System.out.printf("数字:%d,出现次数为:%d\n", i + 10, arr[i]);
			if (arr[i] > max)// 次数最多的数字与它的个数
				max = arr[i];
		}
		System.out.println("出现次数最多的有以下数字");

		// 最后将每个数字及其出现次数打印出来，
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] == max)
				System.out.printf("数字:%d,出现次数为:%d\n", i + 10, max);
		}
		// 打印时按按照数字的升序排列。
	}

	private static void test3() {
		// 数组作业2：有一个数组的长度为10，
		int[] arr = new int[10];
		// 请为此数组中每一个位置赋一个在0到99之间的随机数。
		// Arrays.fill(arr, (int) (Math.random()*100));

		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * 100);
		}
		int max = 0;
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > max)
				max = arr[i];
		}
		System.out.println(Arrays.toString(arr));

		// 并把此数组中的最大值输出来。
		System.out.println(max);
	}

	private static void test1() {
		// 数组作业1：循环录入学生的成绩到一个数组中,求出他们的平均分
		double[] sorces = new double[5];
		Scanner scanner = new Scanner(System.in);
		for (int i = 0; i < sorces.length; i++) {
			System.out.println("请输入学生成绩");
			sorces[i] = scanner.nextDouble();

		}

		double amount = 0;
		for (int i = 0; i < sorces.length; i++) {
			amount += sorces[i];
		}

		System.out.printf("学生的平均分是%f", amount / sorces.length);
	}
}
